package planosSaude;
/**
 * Hugo Guttemberg 
 */
import util.Data;

public class PlanoSaude implements java.io.Serializable {

		private static final long serialVersionUID = 1L;
		private long codigo;
		private String nome;
		private String tipo;
		private Data dataInscricao;
		
		public PlanoSaude(long codigo, String nome, String tipo, Data dataInscricao){
			this.codigo = codigo;
			this.nome = nome;
			this.tipo = tipo;
			this.dataInscricao = dataInscricao;
		}

		public boolean match(PlanoSaude planoSaude) {
			boolean retorno = true;
			
			//	 teste do codigo
			if (planoSaude.getCodigo()>0) {
				retorno = retorno && (planoSaude.getCodigo() == this.getCodigo());
			}
			
			// teste do nome
			if (planoSaude.getNome() != null) {
				if (this.nome != null) {
					retorno = retorno && (this.nome.indexOf(planoSaude.getNome()) != -1);
				} else {
					retorno = false;
				}
			}			

			// teste do tipo
			if (planoSaude.getTipo() != null) {
				if (this.tipo != null) {
					retorno = retorno && (this.tipo.indexOf(planoSaude.getTipo()) != -1);
				} else {
					retorno = false;
				}
			}

			// teste da data
			if (planoSaude.getDataInscricao() != null) {
				if (this.tipo != null) {
					retorno = retorno && (this.dataInscricao.match(planoSaude.getDataInscricao()));
				} else {
					retorno = false;
				}
			}
			return retorno;
		}
		
		
		public Data getDataInscricao() {
			return dataInscricao;
		}

		public void setDataInscricao(Data dataInscricao) {
			this.dataInscricao = dataInscricao;
		}

		public String getNome() {
			return nome;
		}

		public void setNome(String nome) {
			this.nome = nome;
		}

		public String getTipo() {
			return tipo;
		}

		public void setTipo(String tipo) {
			this.tipo = tipo;
		}

		public long getCodigo() {
			return codigo;
		}
		
		public String toString(){
			return this.getNome() + " - " + this.getTipo() + " - Cod.:" + this.getCodigo(); 
		}
		
}
